jdev - 2021-01-20

  1. Vaulor has left

  2. Vaulor has joined

  3. Vaulor has left

  4. Vaulor has joined

  5. Vaulor has left

  6. Vaulor has joined

  7. Vaulor has left

  8. Vaulor has joined

  9. Vaulor has left

  10. Vaulor has joined

  11. wurstsalat has left

  12. Vaulor has left

  13. Vaulor has joined

  14. belong has left

  15. Vaulor has left

  16. stpeter has left

  17. Vaulor has joined

  18. kikuchiyo has left

  19. Vaulor has left

  20. Vaulor has joined

  21. mikeye has joined

  22. belong has joined

  23. Vaulor has left

  24. Vaulor has joined

  25. Vaulor has left

  26. Vaulor has joined

  27. Vaulor has left

  28. Vaulor has joined

  29. Vaulor has left

  30. Vaulor has joined

  31. Vaulor has left

  32. Vaulor has joined

  33. Vaulor has left

  34. Vaulor has joined

  35. paul has left

  36. Vaulor has left

  37. Vaulor has joined

  38. Vaulor has left

  39. Vaulor has joined

  40. debacle has left

  41. Vaulor has left

  42. Vaulor has joined

  43. Vaulor has left

  44. Vaulor has joined

  45. Vaulor has left

  46. Vaulor has joined

  47. Vaulor has left

  48. Vaulor has joined

  49. Vaulor has left

  50. Vaulor has joined

  51. Vaulor has left

  52. Vaulor has joined

  53. Vaulor has left

  54. Vaulor has joined

  55. stpeter has joined

  56. Vaulor has left

  57. Vaulor has joined

  58. stpeter has left

  59. Vaulor has left

  60. Vaulor has joined

  61. Vaulor has left

  62. Vaulor has joined

  63. mikeye has left

  64. Vaulor has left

  65. Vaulor has joined

  66. Vaulor has left

  67. Vaulor has joined

  68. Vaulor has left

  69. Vaulor has joined

  70. Vaulor has left

  71. Vaulor has joined

  72. Vaulor has left

  73. Vaulor has joined

  74. Vaulor has left

  75. Vaulor has joined

  76. Vaulor has left

  77. Vaulor has joined

  78. Vaulor has left

  79. Vaulor has joined

  80. Vaulor has left

  81. Vaulor has joined

  82. Vaulor has left

  83. Vaulor has joined

  84. Vaulor has left

  85. Vaulor has joined

  86. Vaulor has left

  87. Vaulor has joined

  88. alex-a-soto has left

  89. alex-a-soto has joined

  90. Vaulor has left

  91. Vaulor has joined

  92. mikeye has joined

  93. Vaulor has left

  94. Vaulor has joined

  95. Vaulor has left

  96. Vaulor has joined

  97. stefan has joined

  98. SouL has joined

  99. mikeye has left

  100. paul has joined

  101. wurstsalat has joined

  102. goffi has joined

  103. oibalos has joined

  104. mac has joined

  105. Martin has left

  106. Martin has joined

  107. marmistrz has joined

  108. mac has left

  109. asterix has left

  110. asterix has joined

  111. stefan has left

  112. stefan has joined

  113. asterix has left

  114. asterix has joined

  115. asterix has left

  116. asterix has joined

  117. belong has left

  118. asterix has left

  119. asterix has joined

  120. belong has joined

  121. mikeye has joined

  122. mikeye has left

  123. mikeye has joined

  124. kikuchiyo has joined

  125. asterix has left

  126. asterix has joined

  127. gav has joined

  128. mikeye has left

  129. asterix has left

  130. asterix has joined

  131. asterix has left

  132. asterix has joined

  133. asterix has left

  134. asterix has joined

  135. asterix has left

  136. asterix has joined

  137. mikeye has joined

  138. asterix has left

  139. asterix has joined

  140. wurstsalat has left

  141. wurstsalat has joined

  142. mikeye has left

  143. mikeye has joined

  144. Vaulor has left

  145. Vaulor has joined

  146. mikeye has left

  147. Vaulor has left

  148. Vaulor has joined

  149. Vaulor has left

  150. Vaulor has joined

  151. Vaulor has left

  152. Vaulor has joined

  153. debacle has joined

  154. asterix has left

  155. asterix has joined

  156. belong has left

  157. kikuchiyo has left

  158. belong has joined

  159. kikuchiyo has joined

  160. Sam Whited

    I'm sure I've asked this before and don't remember if I ever got an answer, but BOSH defines a version string during negotiation, but as far as I can tell there is no actual version listed anywhere. The XEP version doesn't even match the same format (and of course involves lots of changes that wouldn't change a protocol version anyways), so I have no idea what value to put there?

  161. Sam Whited

    (not the xmpp:version from XEP-0206, but the ver attribute from XEP-0124, to be clear)

  162. Zash looks at Prosodys mod_bosh

  163. Zash

    It has '1.6' 🤷️

  164. Kev

    Urgh. If people are going to discuss BOSH can they at least put it in NSFW tags or something? :(

  165. Sam Whited

    hah, that would be a good April 1st XEP. NSFW feature (which could be a real feature) but also we list technologies such as BOSH that must be behind it.

  166. Zash

    There is that spoiler message XEP...

  167. Sam Whited

    Zash: 1.6 appears to be used in one of the examples and is a version of the BOSH XEP itself, so maybe that was the intent? I have no idea.

  168. Sam Whited

    Especially since the XEP version might be bumped just for typos and recent ones use major.minor.patch syntax which doesn't fit the bosh version syntax

  169. Sam Whited looks at who introduced the new version syntax and broke things… *blushes*

  170. jonnj has left

  171. Sam Whited

    *sigh* it would almost be easier to revive the websocket over HTTP/2 I-D than to continue implementing BOSH.

  172. Kev

    Swiften also sends 1.6, FWIW.

  173. Zash

    1.6 was probably the latest version when mod_bosh was written, it was committed ~2 months after 1.7 was published (according to the xep changelog)

  174. Kev

    But my view is that if you're implementing BOSH for anything less than a significant amount of money (or insert other motivator here), you're probably soft in the head.

  175. moparisthebest

    Sam Whited, revive what? doesn't https://tools.ietf.org/html/rfc8441 support it?

  176. Kev

    AFAICS, Swiften doesn't care at all about the ver, it just includes it at 1.6

  177. Kev

    I *suspect* that's true of every implementation, but have no evidence to support that.

  178. Zash

    Kev, Prosody doesn't seem to do the same

  179. Zash

    Kev, Prosody seems to do the same

  180. Sam Whited

    Kev: you're not wrong… this is the second or third time I've tried to do this (only once for money, and even then only a moderate amount of money)

  181. Sam Whited

    And every single time I think "this time's the one, this time it will work correctly" and I always end up abandoning it in frustration.

  182. Sam Whited

    I'll stick with 1.6 for compatibility then (why not). Thanks

  183. Kev

    I've implemented it once and a bit. I think another implementation is in my future, but I'm trying to avoid it.

  184. Sam Whited

    moparisthebest: thanks for the link, I thought this had never gotten beyond I-D for some reason. I'll have to re-read (assuming this is the same thing) and see. Maybe websockets actually does work on HTTP/2 now and I just have old info

  185. Sam Whited

    I guess I didn't abandon the commercial one in frustration, HipChat just ended up being sold and I left the company. No idea if they ever used it or not.

  186. goffi has left

  187. goffi has joined

  188. asterix has left

  189. asterix has joined

  190. jonnj has joined

  191. stpeter has joined

  192. moparisthebest

    Sam Whited: I was rather recently surprised by that RFC also :)

  193. moparisthebest

    The next question is will the same thing work over http/3

  194. SouL has left

  195. asterix has left

  196. asterix has joined

  197. SouL has joined

  198. adityaborikar has left

  199. adityaborikar has joined

  200. adityaborikar has left

  201. adityaborikar has joined

  202. junaid has left

  203. junaid has joined

  204. kikuchiyo has left

  205. kikuchiyo has joined

  206. belong has left

  207. belong has joined

  208. marmistrz has left

  209. edhelas has left

  210. edhelas has joined

  211. marmistrz has joined

  212. paul has left

  213. paul has joined

  214. paul has left

  215. paul has joined

  216. alex-a-soto has left

  217. alex-a-soto has joined

  218. Guest has joined

  219. Guest has left

  220. stpeter has left

  221. paul has left

  222. paul has joined

  223. stpeter has joined

  224. stpeter has left

  225. stpeter has joined

  226. Sam Whited

    Another stupid question which I just realized is a problem (potentially): what do people do in their libraries if someone tries to send an IQ without a namespace? Normally it would just be in the default namespace and therefore still a stanza, but if I implemented the websocket subprotocol as discussed earlier it wouldn't have a namespace and wouldn't be a stanza. Maybe I should detect anything called "iq", "message", or "presence" without a namespace set and just set it to the right thing (although technically I guess that's wrong and you could have a non-stanza thing called "iq", but that would be dumb so I'm not sure if I care)\

  227. Zash

    Dunno what libraries do, but Prosody tweaks the namespace on outgoing stanzas to have the proper jabber:client namespace if it's unset.

  228. flow

    ideally users are not able to construct IQ instances without a namespace

  229. Sam Whited

    Users can send whatever arbitrary XML they want, so that's not an option

  230. Zash

    I feel like there would be type system things you could do here

  231. Sam Whited

    But that's a good point, maybe if it's sent with the IQ struct I could find a way to make those always get the right namespace set at least

  232. Sam Whited

    Then if users deliberately encode XML tokens that include "<iq xmlns=''/>" that's fine, it's their problem, but if they use the safer library features they get the correct behavior

  233. flow

    ideally users are not able to construct IQ instances without a namespace (for the IQ child element)

  234. flow

    I just realized that we are talking only about jabber:client / jabber:server as namespace

  235. Zash

    That may be a nice place to enforce that iq stanzas have an @id attribute as well, and other constraints

  236. Sam Whited

    oh yah, sorry, wasn't thinking of the IQ child

  237. Sam Whited

    I have ID enforced at the stream level actually. It looks at all tokens passing through and if any of them are "iq", "message", or "presence" with namespace "jabber:client" or "jabber:server" it adds IDs (and "from" if it's an s2s connection)

  238. flow

    in Smack, stanzas implicitly have the right namespace (jabber:client in smack's case), and when the stanza is serialized, Smack will try to avoid printing the namespace declaration if it is redundant

  239. Sam Whited

    So right now if you sent "iq" with no namespace those rules wouldn't trigger either

  240. Sam Whited

    meh, maybe I'll just add the namespace to anything called "iq" with an empty namespace in the same place IDs are enforced. It's just easier and if it ever causes an actual problem I'll eat my hat

  241. Zash

    Similar in Prosody, missing xmlns attribute normally means it's the same as the parent, or the default stream namespace, but websocket being a bit special there means special care needs to be taken somewhere in the pipeline.

  242. Zash

    (Why couldn't we have a websockets-for-normal-clients that's just the same as the TCP binding but with WS framing?)

  243. o2 has left

  244. Sam Whited

    I wonder that every time I read through this spec…

  245. Sam Whited

    I'm sure there was some sort of good reason for doing it this way, but I have no idea what it is.

  246. Zash

    It's because browsers don't have streaming XML parsers exposed to JavaScript

  247. Zash

    Thus every frame must be a vaid XML document.

  248. Sam Whited

    oh yah, that makes sense

  249. Sam Whited

    Actual other question: I was just thinking I'd do the client side because "why not?" (once I've done the receiving side it's pretty trivial to make the handshake work for a client connection too), but why would anything use websockets that's not actually the web?

  250. stpeter

    Heh, I still remember trying to convince Mike Shaver to add XMPP to Firefox at an OSCON in Portland around 2002/2003...

  251. Sam Whited

    I guess technically some server could only expose that

  252. Zash

    But WebSockets have sub-protocol negotiation, it wouldn't be super hard to add another for those with streaming parsers

  253. Sam Whited

    stpeter: as a javascript feature or as part of that chat product that was built in for a while? Either way, that would have been fun :)

  254. Zash

    You could have used it to get trough web stacks and firewalls, but now you could do that with ALPN instead.

  255. moparisthebest

    > why would anything use websockets that's not actually the web? another easy firewall bypass Sam Whited

  256. Sam Whited

    Oh yah, firewall bypass makes sense

  257. Zash

    There are desktop clients with BOSH support after all

  258. stpeter

    Sam Whited: the idea that DizzyD and I had was that they could use XMPP for real-time notifications and experiences within the browser

  259. moparisthebest

    you've got your network security people who refuse to expose anything to the internet that can't be "protected" by their enterprise (tm) WAF

  260. Sam Whited


  261. stpeter

    (this was before xmlhttprequest and such)

  262. moparisthebest

    stpeter, so you invented push notifications? :)

  263. Zash

    Oh, I though XHR dated back to the 90s, better recallibrate that.

  264. stpeter

    Zash: not sure actually

  265. Zash

    Or maybe it's just so long ago that my brain is compressing the 90-00 era into one...

  266. stpeter

    Well I'm wrong.

  267. stpeter


  268. o2 has joined

  269. Sam Whited

    I always think of XML only really taking off in the early 2000's, not that I was paying much attention at the time so I'm probably wrong

  270. o2 has left

  271. o2 has joined

  272. o2 has left

  273. o2 has joined

  274. oibalos has left

  275. floretta has left

  276. floretta has joined

  277. oibalos has joined

  278. stefan has left

  279. marmistrz has left

  280. goffi has left

  281. oibalos has left

  282. oibalos has joined

  283. adityaborikar has left

  284. adityaborikar has joined

  285. Zash has left

  286. asterix has left

  287. asterix has joined

  288. Guus has left

  289. mikeye has joined

  290. edhelas has left

  291. edhelas has joined

  292. asterix has left

  293. asterix has joined

  294. mikeye has left

  295. adrien has left

  296. paul has left

  297. stpeter has left

  298. Zash has joined

  299. oibalos has left

  300. kikuchiyo has left