Author: mikej Date: Fri Feb 1 16:14:53 2008 New Revision: 7473 Modified: freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml freeswitch/trunk/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c Log: option to disable 100 continue (MDXMLINT-24), Thanks Shannon. Modified: freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml ============================================================================== --- freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml (original) +++ freeswitch/trunk/conf/autoload_configs/xml_cdr.conf.xml Fri Feb 1 16:14:53 2008 @@ -23,6 +23,9 @@ <!-- encode the post data may be 'true' for url encoding, 'false' for no encoding or 'base64' for base64 encoding --> <param name="encode" value="true"/> + + <!-- optional: set to true to disable Expect: 100-continue lighttpd requires this setting --> + <!--<param name="disable-100-continue" value="true"/>--> <!-- optional: full path to the error log dir for failed web posts if not specified its the same as log-dir --> <!-- either an absolute path, a relative path assuming ${prefix}/logs or a blank or omitted value will default to ${prefix}/logs/xml_cdr --> Modified: freeswitch/trunk/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c ============================================================================== --- freeswitch/trunk/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c (original) +++ freeswitch/trunk/src/mod/xml_int/mod_xml_cdr/mod_xml_cdr.c Fri Feb 1 16:14:53 2008 @@ -45,6 +45,7 @@ uint32_t ignore_cacert_check; int encode; int log_b; + int disable100continue; } globals; SWITCH_MODULE_LOAD_FUNCTION(mod_xml_cdr_load); @@ -121,6 +122,7 @@ /* try to post it to the web server */ if (!switch_strlen_zero(globals.url)) { struct curl_slist *headers = NULL; + struct curl_slist *slist = NULL; curl_handle = curl_easy_init(); if (globals.encode) { @@ -158,6 +160,11 @@ curl_easy_setopt(curl_handle, CURLOPT_URL, globals.url); curl_easy_setopt(curl_handle, CURLOPT_USERAGENT, "freeswitch-xml/1.0"); curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, httpCallBack); + + if (globals.disable100continue) { + slist = curl_slist_append(slist, "Expect:"); + curl_easy_setopt(curl_handle, CURLOPT_HTTPHEADER, slist); + } if (globals.ignore_cacert_check) { curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, FALSE); @@ -245,6 +252,7 @@ memset(&globals,0,sizeof(globals)); globals.log_b = 1; + globals.disable100continue = 0; /* parse the config */ if (!(xml = switch_xml_open_cfg(cf, &cfg, NULL))) { @@ -265,6 +273,8 @@ globals.delay = (uint32_t) atoi(val); } else if (!strcasecmp(var, "log-b-leg")) { globals.log_b = switch_true(val); + } else if (!strcasecmp(var, "disable-100-continue") && switch_true(val)) { + globals.disable100continue = 1; } else if (!strcasecmp(var, "encode")) { if (!strcasecmp(val, "base64")) { globals.encode = 2;