am 4a721df1: Use environment variables to pass information to pppd.
Merge commit '4a721df13a07ca36daafbb3785653979e3d1d393' into eclair-plus-aosp
* commit '4a721df13a07ca36daafbb3785653979e3d1d393':
Use environment variables to pass information to pppd.
diff --git a/mtpd.c b/mtpd.c
index 55f1a55..bf83ac9 100644
--- a/mtpd.c
+++ b/mtpd.c
@@ -337,6 +337,24 @@
memcpy(&args[4], pppd_argv, sizeof(char *) * pppd_argc);
args[4 + pppd_argc] = NULL;
+#ifdef ANDROID_CHANGES
+ {
+ char envargs[65536];
+ char *tail = envargs;
+ int i;
+ /* Hex encode the arguments using [A-P] instead of [0-9A-F]. */
+ for (i = 0; args[i]; ++i) {
+ char *p = args[i];
+ do {
+ *tail++ = 'A' + ((*p >> 4) & 0x0F);
+ *tail++ = 'A' + (*p & 0x0F);
+ } while (*p++);
+ }
+ *tail = 0;
+ setenv("envargs", envargs, 1);
+ args[1] = NULL;
+ }
+#endif
execvp("pppd", args);
log_print(FATAL, "Exec() %s", strerror(errno));
exit(1); /* Pretending a fatal error in pppd. */