>>Кто нибудь добился того чтобы происходила конвертация кодировки KOI8-R <-> CP 1251 на ProFTPD 1.3.1rc2.
>>Патч японцев на данной версии не прокатывает. Т.е. патчится, но когда make
>>install лезут ошибки.
>а если руками установить?
>
>\^P^/
netio ----->
--- netio.c 2006-11-01 09:35:13.000000000 +0700
+++ netio.c2 2007-06-28 00:36:18.000000000 +0800
@@ -523,9 +523,12 @@
return -1;
}
+extern char* local2remote(char* local);
+
int pr_netio_printf(pr_netio_stream_t *nstrm, const char *fmt, ...) {
va_list msg;
char buf[PR_RESPONSE_BUFFER_SIZE] = {'\0'};
+ char* p;
if (!nstrm) {
errno = EINVAL;
@@ -537,6 +540,13 @@
va_end(msg);
buf[sizeof(buf)-1] = '\0';
+ if (buf[0]) {
+ p = local2remote(buf);
+ if (p) {
+ strcpy(buf, p); free(p);
+ }
+ }
+
return pr_netio_write(nstrm, buf, strlen(buf));
}
<-----------
mod_ls ----->
--- mod_ls.c 2006-12-16 05:25:31.000000000 +0700
+++ mod_ls.c2 2007-06-28 00:43:53.000000000 +0800
@@ -244,12 +244,15 @@
return res;
}
+extern char* local2remote(char*);
+
/* sendline() now has an internal buffer, to help speed up LIST output. */
static int sendline(int flags, char *fmt, ...) {
static char listbuf[PR_TUNABLE_BUFFER_SIZE] = {'\0'};
va_list msg;
char buf[PR_TUNABLE_BUFFER_SIZE+1] = {'\0'};
int res = 0;
+ char* buf2;
if (flags & LS_SENDLINE_FL_FLUSH) {
res = pr_data_xfer(listbuf, strlen(listbuf));
@@ -268,6 +271,13 @@
buf[sizeof(buf)-1] = '\0';
+ if (buf[0]) {
+ buf2 = local2remote(buf);
+ if (buf2) {
+ strcpy(buf, buf2); free(buf2);
+ }
+ }
+
/* If buf won't fit completely into listbuf, flush listbuf */
if (strlen(buf) >= (sizeof(listbuf) - strlen(listbuf))) {
res = pr_data_xfer(listbuf, strlen(listbuf));
<-----------