summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Allison <jra@samba.org>2000-01-27 01:09:21 +0000
committerJeremy Allison <jra@samba.org>2000-01-27 01:09:21 +0000
commit451dcb3351461f52fee619e0d8a1b04d31725181 (patch)
tree2bb1c034180e592b82308df4e2ad66aaed62e90f
parentace4006c9f7ac16b3c09b1b2222f607bccfa040e (diff)
downloadsamba-451dcb3351461f52fee619e0d8a1b04d31725181.tar.gz
samba-451dcb3351461f52fee619e0d8a1b04d31725181.tar.bz2
samba-451dcb3351461f52fee619e0d8a1b04d31725181.zip
Fixed code page conversions of messages outgoing/incoming.
Jeremy. (This used to be commit 84b045cbc8b337f1e23f200af433ac9d265a22d4)
-rw-r--r--source3/client/client.c7
-rw-r--r--source3/smbd/message.c10
2 files changed, 17 insertions, 0 deletions
diff --git a/source3/client/client.c b/source3/client/client.c
index 050313bd86..6beff70c9b 100644
--- a/source3/client/client.c
+++ b/source3/client/client.c
@@ -190,6 +190,13 @@ static void send_message(void)
msg[l] = c;
}
+ /*
+ * The message is in UNIX codepage format. Convert to
+ * DOS before sending.
+ */
+
+ unix_to_dos(msg, True);
+
if (!cli_message_text(cli, msg, l, grp_id)) {
printf("SMBsendtxt failed (%s)\n",cli_errstr(cli));
return;
diff --git a/source3/smbd/message.c b/source3/smbd/message.c
index 2f94bdf111..cc329d61a6 100644
--- a/source3/smbd/message.c
+++ b/source3/smbd/message.c
@@ -62,6 +62,16 @@ static void msg_deliver(void)
return;
}
+ /*
+ * Incoming message is in DOS codepage format. Convert to UNIX in
+ * place.
+ */
+
+ if(msgpos > 0) {
+ msgbuf[msgpos] = '\0'; /* Ensure null terminated. */
+ dos_to_unix(msgbuf,True);
+ }
+
for (i=0;i<msgpos;) {
if (msgbuf[i]=='\r' && i<(msgpos-1) && msgbuf[i+1]=='\n') {
i++; continue;