Merge pull request #57 from GregWildman/master

Allow skipping of authentication for NNTP server
This commit is contained in:
Bobbi Webber-Manners 2021-07-01 14:19:23 -04:00 committed by GitHub
commit 004c2cb1dc
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 40 additions and 30 deletions

View File

@ -27,14 +27,14 @@ Here is an example config file (with passwords replaced with `****` for obvious
Bobbi
****
/H1/IP65
/DATA/EMAIL
/H1/DOCUMENTS/EMAIL
bobbi.8bit@gmail.com
```
The lines are as follows, in order:
1) IP address of the NNTP server, optionally followed by a colon and then the TCP port number. If the colon and port number are omitted, port 119 is the default.
2) Username to use when connecting to NNTP.
2) Username to use when connecting to NNTP. If your NNTP server does not need authentication then use '-' for the username and password.
3) Password to use when connecting to NNTP.
4) ProDOS path of the directory where the email executables are installed.
5) ProDOS path to the root of the email folder tree. Mailboxes will be created and managed under this root path.

View File

@ -69,6 +69,10 @@ Recommended optional hardware:
Emai//er has been extensively tested using ProDOS 2.4.2. However, it should not be a problem to run it under other versions of ProDOS.
## Uthernet-II Slot
The default slot is 5. If you have your card in another slot then create a file called `ethernet.slot` using `EDIT.SYSTEM` with your slot number on the first line.
## Transport Level Security (TLS)
One problem faced by any retrocomputing project of this type is that Transport Layer Security (TLS) is endemic on today's Internet. While this is great for security, the encryption algorithms are not feasible to implement on a 6502-based system. In order to bridge the plain text world of the Apple II to today's encrypted Internet, I have set up a Raspberry Pi using several common open source packages as a gateway.

View File

@ -4,7 +4,7 @@ passwordgoeshere
NODELETE
192.168.10.2:25
apple2.local
/IP65
/DATA/EMAIL
/H1/IP65
/H1/DOCUMENTS/EMAIL
bobbi.8bit@gmail.com

View File

@ -1,7 +1,7 @@
144.76.35.198:119
usergoeshere
passwordgoeshere
/IP65
/DATA/EMAIL
/H1/IP65
/H1/DOCUMENTS/EMAIL
bobbi.8bit@gmail.com

View File

@ -327,7 +327,7 @@ void readconfigfile(void) {
colon = strchr(cfg_server, ':');
if (!colon)
nntp_port = 110;
nntp_port = 119;
else {
nntp_port = atoi(colon + 1);
*colon = '\0';
@ -649,19 +649,22 @@ void main(int argc, char *argv[]) {
if (expect(buf, "20")) // "200" if posting is allowed / "201" if no posting
error_exit();
sprintf(sendbuf, "AUTHINFO USER %s\r\n", cfg_user);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
}
if (expect(buf, "381")) // Username accepted
error_exit();
// Skip authentication?
if (strcmp(cfg_user, "-") != 0) {
sprintf(sendbuf, "AUTHINFO USER %s\r\n", cfg_user);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
}
if (expect(buf, "381")) // Username accepted
error_exit();
sprintf(sendbuf, "AUTHINFO PASS %s\r\n", cfg_pass);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
sprintf(sendbuf, "AUTHINFO PASS %s\r\n", cfg_pass);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
}
if (expect(buf, "281")) // Authentication successful
error_exit();
}
if (expect(buf, "281")) // Authentication successful
error_exit();
while (1) {
msg = fscanf(newsgroupsfp, "%s %s %ld", newsgroup, mailbox, &msgnum);

View File

@ -369,7 +369,7 @@ void readconfigfile(void) {
colon = strchr(cfg_server, ':');
if (!colon)
nntp_port = 110;
nntp_port = 119;
else
nntp_port = atoi(colon + 1);
}
@ -645,19 +645,22 @@ sendmessage:
if (expect(buf, "200 ")) // "200" if posting is allowed
error_exit();
sprintf(sendbuf, "AUTHINFO USER %s\r\n", cfg_user);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
}
if (expect(buf, "381")) // Username accepted
error_exit();
// Skip authentication?
if (strcmp(cfg_user, "-") != 0) {
sprintf(sendbuf, "AUTHINFO USER %s\r\n", cfg_user);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
}
if (expect(buf, "381")) // Username accepted
error_exit();
sprintf(sendbuf, "AUTHINFO PASS %s\r\n", cfg_pass);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
sprintf(sendbuf, "AUTHINFO PASS %s\r\n", cfg_pass);
if (!w5100_tcp_send_recv(sendbuf, buf, NETBUFSZ, DO_SEND, CMD_MODE)) {
error_exit();
}
if (expect(buf, "281")) // Authentication successful
error_exit();
}
if (expect(buf, "281")) // Authentication successful
error_exit();
connected = 1;
}