]> git.ipfire.org Git - thirdparty/tvheadend.git/commitdiff
capmt: handle DVBAPI_SERVER_INFO command
authorJaroslav Kysela <perex@perex.cz>
Tue, 6 Oct 2015 14:01:12 +0000 (16:01 +0200)
committerJaroslav Kysela <perex@perex.cz>
Tue, 6 Oct 2015 14:01:12 +0000 (16:01 +0200)
src/descrambler/capmt.c

index 3978fe8d71d8bc5cb8cd585e3326701f63a9e167..756611b6ec19bf21c0283bffd269712c82c838af 100644 (file)
@@ -1111,9 +1111,11 @@ static char *
 capmt_peek_str(sbuf_t *sb, int *offset)
 {
   uint8_t len = sbuf_peek_u8(sb, *offset);
-  char *str = malloc(len + 1);
+  char *str = malloc(len + 1), *p;
   memcpy(str, sbuf_peek(sb, *offset + 1), len);
   str[len] = '\0';
+  for (p = str; *p; p++)
+    if (*p < ' ') *p = ' ';
   *offset += len + 1;
   return str;
 }
@@ -1238,6 +1240,16 @@ capmt_analyze_cmd(capmt_t *capmt, int adapter, sbuf_t *sb, int offset)
     free(reader);
     free(cardsystem);
 
+  } else if (cmd == DVBAPI_SERVER_INFO) {
+
+    uint16_t protover = sbuf_peek_u16(sb, offset + 4);
+    int offset2       = offset + 6;
+    char *info        = capmt_peek_str(sb, &offset2);
+
+    tvhlog(LOG_INFO, "capmt", "%s: Connected to server '%s' (protocol version %d)", capmt_name(capmt), info, protover);
+
+    free(info);
+
   } else {
     tvhlog(LOG_ERR, "capmt", "%s: unknown command %08X", capmt_name(capmt), cmd);
   }