[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-cvs
Subject:    [PHP-CVS] com php-src: =?UTF-8?Q?phpdbg=5Frlog=20for=20logging=20while=20in=20remot?= =?UTF-8?Q?e=20
From:       Bob Weinand <bwoebi () php ! net>
Date:       2013-11-30 14:34:16
Message-ID: php-mail-1eb4753d130c8551a59fae8888771eee318767790 () git ! php ! net
[Download RAW message or body]

Commit:    df0091c445aeabcab96d6238c54d7e8eb9fe2abb
Author:    krakjoe <joe.watkins@live.co.uk>         Sat, 30 Nov 2013 14:34:16 +0000
Parents:   4fa2f01c4e8d0390e1406d0ebdcd040698426fa0
Branches:  PHP-5.6

Link:       http://git.php.net/?p=php-src.git;a=commitdiff;h=df0091c445aeabcab96d6238c54d7e8eb9fe2abb


Log:
phpdbg_rlog for logging while in remote mode (only)

Changed paths:
  M  phpdbg.c
  M  phpdbg_utils.c
  M  phpdbg_utils.h
  M  tutorials/java/dist/phpdbg-ui.jar


Diff:
diff --git a/phpdbg.c b/phpdbg.c
index af3a117..3ac0b09 100644
--- a/phpdbg.c
+++ b/phpdbg.c
@@ -600,8 +600,9 @@ int phpdbg_open_socket(const char *interface, short port) /* {{{ \
*/  
 static inline void phpdbg_close_sockets(int (*socket)[2], FILE *streams[2]) /* {{{ \
*/  {	
-	if ((*socket)[0]) {
-		shutdown((*socket)[0], SHUT_RDWR);
+	if ((*socket)[0] >= 0) {
+		shutdown(
+			(*socket)[0], SHUT_RDWR);
 		close((*socket)[0]);
 	}
 	
@@ -609,8 +610,9 @@ static inline void phpdbg_close_sockets(int (*socket)[2], FILE \
*streams[2]) /* {  fclose(streams[0]);
 	}
 	
-	if ((*socket)[1]) {
-		shutdown((*socket)[1], SHUT_RDWR);
+	if ((*socket)[1] >= 0) {
+		shutdown(
+			(*socket)[1], SHUT_RDWR);
 		close((*socket)[1]);
 	}
 	
@@ -633,13 +635,13 @@ int phpdbg_open_sockets(char *address, int port[2], int \
(*listen)[2], int (*sock  
 	if ((*listen)[0] < 0 || (*listen)[1] < 0) {
 		if ((*listen)[0] < 0) {
-			fprintf(stderr, 
-				"Failed to start remote console (stdin) on port %d\n", port[0]);
+			phpdbg_rlog(stderr,
+				"console failed to initialize (stdin) on %s:%d", address, port[0]);
 		}
 
 		if ((*listen)[1] < 0) {
-			fprintf(stderr, 
-				"Failed to open remote console (stdout) on port %d\n", port[1]);
+			phpdbg_rlog(stderr,
+				"console failed to initialize (stdout) on %s:%d", address, port[1]);
 		}
 
 		if ((*listen)[0] >= 0) {
@@ -655,8 +657,8 @@ int phpdbg_open_sockets(char *address, int port[2], int \
(*listen)[2], int (*sock  
 	phpdbg_close_sockets(socket, streams);
 
-	fprintf(stderr,
-		"Remote console accepting (stdin/stdout) on ports %d/%d\n", port[0], port[1]);
+	phpdbg_rlog(stderr,
+		"accepting connections on %s:%d/%d", address, port[0], port[1]);
 	{
 		struct sockaddr_in address;
 		socklen_t size = sizeof(address);
@@ -668,8 +670,7 @@ int phpdbg_open_sockets(char *address, int port[2], int \
(*listen)[2], int (*sock  (*listen)[0], (struct sockaddr *) &address, &size);
 			inet_ntop(AF_INET, &address.sin_addr, buffer, sizeof(buffer));
 
-			fprintf(stderr,
-				"Remote console (stdin) connection from %s\n", buffer);
+			phpdbg_rlog(stderr, "connection (stdin) from %s", buffer);
 		}
 
 		{
@@ -678,8 +679,7 @@ int phpdbg_open_sockets(char *address, int port[2], int \
(*listen)[2], int (*sock  (*listen)[1], (struct sockaddr *) &address, &size);
 		    inet_ntop(AF_INET, &address.sin_addr, buffer, sizeof(buffer));
 
-		    fprintf(stderr,
-				"Remote console (stdout) connection from %s\n", buffer);
+			phpdbg_rlog(stderr, "connection (stdout) from %s", buffer);
 		}
 	}
 
diff --git a/phpdbg_utils.c b/phpdbg_utils.c
index 33ead60..5232f31 100644
--- a/phpdbg_utils.c
+++ b/phpdbg_utils.c
@@ -242,6 +242,35 @@ PHPDBG_API int phpdbg_print(int type TSRMLS_DC, FILE *fp, const \
char *format, ..  return rc;
 } /* }}} */
 
+PHPDBG_API int phpdbg_rlog(FILE *fp, const char *fmt, ...) { /* {{{ */
+	int rc = 0;
+	
+	va_list args;
+	time_t now;
+	struct timeval tp;
+	
+	va_start(args, fmt);
+	if (gettimeofday(&tp, NULL) == SUCCESS)
+	{
+		char friendly[100];
+		char *format = NULL, *buffer = NULL;
+		
+		strftime(friendly, 100, "%a %b %d %T.%%04d %Y", localtime(&tp.tv_sec));
+		asprintf(
+			&buffer, friendly, tp.tv_usec/1000);		
+		asprintf(
+			&format, "[%s]: %s\n", buffer, fmt);
+		rc = vfprintf(
+			fp, format, args);
+			
+		free(format);
+		free(buffer);
+	}
+	va_end(args);
+	
+	return rc;
+} /* }}} */
+
 PHPDBG_API const phpdbg_color_t *phpdbg_get_color(const char *name, size_t \
name_length TSRMLS_DC) /* {{{ */  {
 	const phpdbg_color_t *color = colors;
diff --git a/phpdbg_utils.h b/phpdbg_utils.h
index eb44d7c..e934467 100644
--- a/phpdbg_utils.h
+++ b/phpdbg_utils.h
@@ -32,7 +32,7 @@ PHPDBG_API char *phpdbg_resolve_path(const char* TSRMLS_DC);
 PHPDBG_API char *phpdbg_trim(const char*, size_t, size_t*);
 
 /**
- * Error/notice/formatting helper
+ * Error/notice/formatting helpers
  */
 enum {
 	P_ERROR  = 1,
@@ -48,6 +48,8 @@ PHPDBG_API int phpdbg_print(int TSRMLS_DC, FILE*, const char*, ...) \
PHP_ATTRIBUT  PHPDBG_API int phpdbg_print(int TSRMLS_DC, FILE*, const char*, ...) \
PHP_ATTRIBUTE_FORMAT(printf, 3, 4);  #endif
 
+PHPDBG_API int phpdbg_rlog(FILE *stream, const char *fmt, ...);
+
 #define phpdbg_error(fmt, ...)              phpdbg_print(P_ERROR   TSRMLS_CC, \
PHPDBG_G(io)[PHPDBG_STDOUT], fmt, ##__VA_ARGS__)  #define phpdbg_notice(fmt, ...)     \
phpdbg_print(P_NOTICE  TSRMLS_CC, PHPDBG_G(io)[PHPDBG_STDOUT], fmt, ##__VA_ARGS__)  \
#define phpdbg_writeln(fmt, ...)            phpdbg_print(P_WRITELN TSRMLS_CC, \
                PHPDBG_G(io)[PHPDBG_STDOUT], fmt, ##__VA_ARGS__)
diff --git a/tutorials/java/dist/phpdbg-ui.jar b/tutorials/java/dist/phpdbg-ui.jar
index b02e649..f1d9f9f 100644
Binary files a/tutorials/java/dist/phpdbg-ui.jar and \
b/tutorials/java/dist/phpdbg-ui.jar differ


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic