R:250 mailleur.example.com, link (cleartext) ready,...
S:MAIL FROM: <postmaster@example.com>
R:250 2.1.3 postmaster@example.com.. sender ok
-S:RCPT TO: <áöüñ@example.com>
-R:250 2.6.4 Address accepted <áöüñ@example.com>
+S:RCPT TO: <utf8-áöüñ@example.com>
+R:250 2.6.4 Address accepted <utf8-áöüñ@example.com>
#-------------------------------------------------------------------------
#-sending data
C:DATA 354 3.5.0 End data with <CR><LF>.<CR><LF>
inbuf=encoded;
marker=(char *)calloc(outbuflft,sizeof(char));
outbuf=marker;
- if (iconv(hconv,&inbuf,&inbuflft,&outbuf,&outbuflft)==(size_t)(-1)) {
- (void) rou_alert(2,"%s Unable to convert <%s> "
- "from=<%s> to=<%s> (errno=<%s>)",
- OPEP,encoded,lfrom,lto,strerror(errno));
- (void) free(marker);
- marker=(char *)0;
- }
+ while (inbuflft>0) {
+ if (iconv(hconv,&inbuf,&inbuflft,&outbuf,&outbuflft)==(size_t)(-1)) {
+ inbuf++;
+ inbuflft=strlen(inbuf);
+ //replacing out of lfrom subset char by '_'
+ (void) strcat(marker,"_");
+ outbuf++;
+ outbuflft--;
+ }
+ }
break;
case 2 : /*doing convertion */
if (iconv_close(hconv)<0)
}
phase++;
}
+(void) rou_alert(0,"%s encoded=<%s> Converted=<%s>",OPEP,encoded,converted);
return converted;
#undef OPEP
ptr=DLANG;
break;
case 1 :
- if ((converted=cnvconvert(DLANG,ptr,strencoded))!=(char *)0)
+ if ((converted=cnvconvert(ptr,ptr,strencoded))!=(char *)0)
phase=999; //everything fine converting to DB_LANG
break;
- case 2 : //converting in very plain ascii
- if ((converted=cnvconvert(DLANG,ptr,strencoded))!=(char *)0)
- phase=999; //simple char now
- break;
- case 3 : //conversion trouble
+ case 2 : //conversion trouble
(void) rou_alert(0,"%s Wrong encoding for db access key <%s> (Config?)",
OPEP,strencoded);
break;