write_kafka: 'rd_kafka_errno2err' is deprecated, fix failed builds
authorPavel Rochnyack <pavel2000@ngs.ru>
Sat, 10 Feb 2018 09:20:41 +0000 (09:20 +0000)
committerPavel Rochnyack <pavel2000@ngs.ru>
Sat, 10 Feb 2018 09:51:48 +0000 (16:51 +0700)
Since librdkafka-0.11.0 applications should use rd_kafka_last_error()
to retrieve the error code from the legacy APIs.

Thanks to hikdo.

Closes: #2607
Closes: #2628
Closes: #2640

src/write_kafka.c

index 306d92c..17a83e0 100644 (file)
@@ -77,6 +77,14 @@ static void kafka_log(const rd_kafka_t *rkt, int level, const char *fac,
 }
 #endif
 
+static rd_kafka_resp_err_t kafka_error() {
+#if RD_KAFKA_VERSION >= 0x000b00ff
+  return rd_kafka_last_error();
+#else
+  return rd_kafka_errno2err(errno);
+#endif
+}
+
 static uint32_t kafka_hash(const char *keydata, size_t keylen) {
   uint32_t hash = 5381;
   for (; keylen > 0; keylen--)
@@ -147,7 +155,7 @@ static int kafka_handle(struct kafka_topic_context *ctx) /* {{{ */
     if ((ctx->topic = rd_kafka_topic_new(ctx->kafka, ctx->topic_name,
                                          topic_conf)) == NULL) {
       ERROR("write_kafka plugin: cannot create topic : %s\n",
-            rd_kafka_err2str(rd_kafka_errno2err(errno)));
+            rd_kafka_err2str(kafka_error()));
       return errno;
     }