GQuark errdomain;
GArray *retval=NULL;
gchar **groups;
- gboolean value;
+ gboolean bval;
+ gint ival;
+ gchar* sval;
gchar* startgroup;
gint i;
gint j;
g_assert(p[j].ptype==PARAM_INT||p[j].ptype==PARAM_STRING||p[j].ptype==PARAM_BOOL);
switch(p[j].ptype) {
case PARAM_INT:
- *((gint*)p[j].target) =
- g_key_file_get_integer(cfile,
+ ival = g_key_file_get_integer(cfile,
groups[i],
p[j].paramname,
&err);
+ if(!err) {
+ *((gint*)p[j].target) = ival;
+ }
break;
case PARAM_STRING:
- *((gchar**)p[j].target) =
- g_key_file_get_string(cfile,
+ sval = g_key_file_get_string(cfile,
groups[i],
p[j].paramname,
&err);
+ if(!err) {
+ *((gchar**)p[j].target) = sval;
+ }
break;
case PARAM_BOOL:
- value = g_key_file_get_boolean(cfile,
+ bval = g_key_file_get_boolean(cfile,
groups[i],
p[j].paramname, &err);
if(!err) {
- if(value) {
+ if(bval) {
*((gint*)p[j].target) |= p[j].flagval;
} else {
*((gint*)p[j].target) &= ~(p[j].flagval);
}
break;
}
- if(!strcmp(p[j].paramname, "port") && !strcmp(p[j].target, modernport)) {
- g_set_error(e, errdomain, CFILE_INCORRECT_PORT, "Config file specifies new-style port for oldstyle export");
- g_key_file_free(cfile);
- return NULL;
- }
if(err) {
if(err->code == G_KEY_FILE_ERROR_KEY_NOT_FOUND) {
if(!p[j].required) {
}
if (write(net, &magic, sizeof(magic)) < 0) {
err_nonfatal("Negotiation failed: %m");
- if(client)
+ if(phase & NEG_OLD)
exit(EXIT_FAILURE);
}
}
- if(phase & NEG_MODERN) {
+ if ((phase & NEG_MODERN) && (phase & NEG_INIT)) {
/* modern */
uint32_t reserved;
uint32_t opt;
break;
case G_LOG_LEVEL_DEBUG:
level=LOG_DEBUG;
+ break;
default:
level=LOG_ERR;
}