}
*/
-void FAST_FUNC encode_base64(char *fname, const char *text, const char *eol)
-{
- size_t len = len;
- if (text) {
- // though we do not call uuencode(NULL, NULL) explicitly
- // still we do not want to break things suddenly
- len = strlen(text);
- }
- encode_n_base64(fname, text, len, eol);
-}
-
-void FAST_FUNC encode_n_base64(char *fname, const char *text, size_t len, const char *eol)
+static void encode_n_base64(const char *fname, const char *text, size_t len)
{
enum {
SRC_BUF_SIZE = 57, /* This *MUST* be a multiple of 3 */
char dst_buf[DST_BUF_SIZE + 1];
if (fname) {
- fp = (NOT_LONE_DASH(fname)) ? xfopen_for_read(fname) : (FILE *)text;
+ fp = (NOT_LONE_DASH(fname)) ? xfopen_for_read(fname) : stdin;
src_buf = src;
- } else if (!text)
- return;
+ }
while (1) {
size_t size;
// encode the buffer we just read in
bb_uuencode(dst_buf, src_buf, size, bb_uuenc_tbl_base64);
if (fname) {
- puts(eol);
+ puts("");
} else {
src_buf += size;
len -= size;
#undef src_buf
}
+void FAST_FUNC printstr_base64(const char *text)
+{
+ encode_n_base64(NULL, text, strlen(text));
+}
+
+void FAST_FUNC printbuf_base64(const char *text, unsigned len)
+{
+ encode_n_base64(NULL, text, len);
+}
+
+void FAST_FUNC printfile_base64(const char *fname)
+{
+ encode_n_base64(fname, NULL, 0);
+}
+
/*
* get username and password from a file descriptor
*/
char *send_mail_command(const char *fmt, const char *param) FAST_FUNC;
-void encode_base64(char *fname, const char *text, const char *eol) FAST_FUNC;
-void encode_n_base64(char *fname, const char *text, size_t size, const char *eol) FAST_FUNC;
+void printbuf_base64(const char *buf, unsigned len) FAST_FUNC;
+void printstr_base64(const char *buf) FAST_FUNC;
+void printfile_base64(const char *fname) FAST_FUNC;
// substitute placeholders
plain_auth[0] = '\0';
plain_auth[1 + user_len] = '\0';
- encode_n_base64(NULL, plain_auth, 1 + user_len + 1 + pass_len, NULL);
+ printbuf_base64(plain_auth, 1 + user_len + 1 + pass_len);
free(plain_auth);
} else if ((opts & OPT_am_mask) == OPT_am_login) {
smtp_check("AUTH LOGIN", 334);
- encode_base64(NULL, G.user, NULL);
+ printstr_base64(G.user);
smtp_check("", 334);
- encode_base64(NULL, G.pass, NULL);
+ printstr_base64(G.pass);
}
smtp_check("", 235);
}